package com.atguigu.vue.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

//springmvc的配置： 可以注入拦截器、可以配置跨域
@Configuration
//WebMvcConfigurer 是一个接口（Spring 5.0 后为函数式接口，提供默认方法），
// 包含一系列用于配置 MVC 行为的回调方法，允许开发者在不覆盖 Spring 内置配置的基础上，
// 自定义拦截器、资源映射、跨域、视图解析等功能。
public class ScheduleWebMvcConfig implements WebMvcConfigurer {
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry
                //表示 所有的请求 都会经过这个跨域配置处理！
                .addMapping("/**")
                .allowedOriginPatterns("*") // * 表示所有的客户端服务器地址/域名
//                .allowedOrigins("*")  //这个配置 和allowCredentials(true) 冲突 不能同时使用！
                .allowCredentials(true) // 是否允许携带cookie跨域访问，true允许
                .maxAge(3600) // 一次跨域配置授权 的有效时间
                .allowedHeaders("*") //允许请求携带哪些请求头跨域访问
                .allowedMethods("*");//允许客户端使用哪些请求方式跨域访问
    }
}